package model;

import java.util.LinkedList;
import java.util.List;


public class Mapa {

	LinkedList<Nave> naves;
	LinkedList<EspacioDeAterrizaje> pistas;
	
	static private Mapa mapa = null;
	
	static final int ANCHO_MAPA = 600;
	static final int ALTO_MAPA = 600;
	
	private Mapa() {
		this.naves = new LinkedList<Nave>();
		this.pistas = new LinkedList<EspacioDeAterrizaje>();
	}
	
	public static Mapa getMapa(){
		if(mapa == null)
			mapa = new Mapa();
		return mapa;
	}

	public static int getAnchoMapa () {
		return ANCHO_MAPA;
	}
	
	public static int getAltoMapa () {
		return ALTO_MAPA;
	}
	
	public int getCantidadDePistas() {		
		return this.pistas.size();
	}
	
	public LinkedList<Nave> getNaves() {
		return this.naves;}

	public LinkedList<EspacioDeAterrizaje> getPistas() {
		return this.pistas;
	}
	
	public void agregarPista(EspacioDeAterrizaje pista) {
		this.pistas.add(pista);
		
	}
	public int getCantidadDeNaves() {
		return this.naves.size();
	}
	
	public void agregarNave(Nave nave){
		this.naves.add(nave);
	}
	public PistaCorta getRandomPista(){
		//debe devolver pista larga o corta.
		PistaCorta nuevo = new PistaCorta();
		return nuevo;
	}
	public void vaciarMapa(){
		List<Nave> naves = this.getNaves();
		List<EspacioDeAterrizaje> pistas = this.getPistas();
		for(Nave nave : naves){
			this.naves.remove(nave);
		}
		for(EspacioDeAterrizaje pista:pistas){
			this.pistas.remove(pista);
		}
	}
}
